﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ArgusPCLib.Mathematics
{
	class ScalarTemplate : IScalar
	{
		#region IOperand
		public static ScalarTemplate Parse(string text, string format, IFormatProvider formatProvider)
		{
			throw new NotImplementedException();
		}

		public static bool TryParse(string text, string format, IFormatProvider formatProvider, out ScalarTemplate value)
		{
			throw new NotImplementedException();
		}

		public static int PartialParse(string text, string format, IFormatProvider formatProvider, out ScalarTemplate value)
		{
			throw new NotImplementedException();
		}

		public ScalarTemplate GetDeepCopy()
		{
			throw new NotImplementedException();
		}

		IOperand IOperand.GetDeepCopy() { return this.GetDeepCopy(); }

		// string IFormattable.ToString(string format, IFormatProvider formatProvider)
		public string ToString(string format, IFormatProvider formatProvider)
		{
			throw new NotImplementedException();
		}
		#endregion

		#region IScalar
		public static ScalarTemplate Zero { get { throw new NotImplementedException(); } }
		public static ScalarTemplate One { get { throw new NotImplementedException(); } }

		public static ScalarTemplate operator+(ScalarTemplate a, ScalarTemplate b)
		{
			throw new NotImplementedException();
		}

		public static ScalarTemplate operator -(ScalarTemplate a, ScalarTemplate b)
		{
			throw new NotImplementedException();
		}

		public static ScalarTemplate operator *(ScalarTemplate a, ScalarTemplate b)
		{
			throw new NotImplementedException();
		}

		public static ScalarTemplate operator /(ScalarTemplate a, ScalarTemplate b)
		{
			throw new NotImplementedException();
		}

		public static bool operator ==(ScalarTemplate a, ScalarTemplate b)
		{
			throw new NotImplementedException();
		}

		public static bool operator !=(ScalarTemplate a, ScalarTemplate b)
		{
			return !(a == b);
		}

		IScalar IScalar.Add(IScalar value) { return this + (ScalarTemplate)value; }
		IScalar IScalar.Multiply(IScalar value) { return this - (ScalarTemplate)value; }
		IScalar IScalar.Subtract(IScalar value) { return this * (ScalarTemplate)value; }
		IScalar IScalar.Divide(IScalar value) { return this / (ScalarTemplate)value; }
		bool IScalar.IsEqualTo(IScalar value) { return this == (ScalarTemplate)value; }
		#endregion
	}
}
